home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
src
/
Games
/
reve
/
CHANGES
< prev
next >
Wrap
Text File
|
1995-05-03
|
24KB
|
539 lines
/* @(#)CHANGES 1.29 91/11/13
*
* Copyright (C) 1990, 1991 - Rich Burridge & Yves Gallot.
* All rights reserved.
*
* Permission is granted to copy this source, for redistribution
* in source form only, provided the news headers in "substantially
* unaltered format" are retained, the introductory messages are not
* removed, and no monies are exchanged.
*
* Permission is also granted to copy this source, without the
* news headers, for the purposes of making an executable copy by
* means of compilation, provided that such copy will not be used
* for the purposes of competition in any othello tournaments, without
* prior permission from the authors.
*
* No responsibility is taken for any errors on inaccuracies inherent
* either to the comments or the code of this program, but if reported
* (see README file), then an attempt will be made to fix them.
*/
Reve v1.3 change history.
=========================
v1.3 - patchlevel 1. 13th November 1991.
* From Norbert Jung <jung@dia.informatik.uni-stuttgart.de>
Need to include <ctype.h> in get.c for toupper() and tolower().
* From Brett Carver <brett@hpnmd.sr.hp.com>
Various small changes to get reve V1.3 to compile on HP machines.
* From Brett Carver <brett@hpnmd.sr.hp.com>
From Norbert Jung <jung@dia.informatik.uni-stuttgart.de>
If I am forced to pass, the color is nevertheless changed and the
computer plays with the wrong color.
* From Valerie Haecky <vmh@Eng.Sun.COM>
Display the time left for the user[s] and computer. There is an
option on the property sheet that enables clock timers. New -clock
command line option and reve.showClocks X resource.
v1.3 - patchlevel 0. 8th November 1991.
* The XView version is now generated from a devGuide .G file. Some
changes to the GUI.
* The images and cursors have been converted to the portable XBM
format. A routine has been added to the SunView version to read
the images and cursors in this format.
* All versions of reve can now play across the network. There is a
"-opponent user@host" command line argument, and there is an
in.reved daemon (almost identical to the BSD talk daemon), which
establishs the connection. See the README file for details of how
to install the in.reved daemon.
Removed the "-black display" and "-white display" command line
options, and the -c command line option. Manuals pages have been
updated.
* Removed all references to the color reve icon. All graphics
versions (even the color ones) now use the monochrome reve icon.
* The X11 driver no longer tries to handle two screens.
* The SunView version now terminates correctly if quit via the
pull-down frame menu.
* Divided the TODO file into two sections; known problems and
possible enhancements.
Reve v1.2 change history.
=========================
v1.2 - patchlevel 9. 22nd July 1991.
* From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
You've updated the Makefile for the -DNOGETDTAB flag, but didn't
do the same for the Imakefile. HP-UX 7.0 and 8.0 needs this flag
set to compile OK.
* From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
I couldn't resize the main reve board to fill the whole screen
(1280 by 1024 colour). There appears to be a hard-coded limit to
the size of the board.
* Ran the Xlib version through Saber-C and fixed up the inconsistencies.
* The Xlib version of reve now correctly reads the -display <display>
command line option, to determine which display to initially open
to get X resource preferences. This wasn't a problem when you were
displaying reve on the same screen as the server was running on, but
was a problem for X terminals.
* Implemented the "two screens on two machines" version for the Xlib
interface. If it's not your turn, then the hourglass cursor will be
turned on, and if you attempt to do anything, you get the message,
"It's not your turn". The "Computer plays:", "Difficulty:" and "Set
search depth:" options are ignored when in two player mode; the other
options on the property sheet should hopefully be just applicable to
the local screen. Note the one known remaining problem, which is
described near the beginning of the TODO file.
v1.2 - patchlevel 8. 1st July 1991.
* From Michael Glad <glad@daimi.aau.dk>
As a possible alternative solution to the getdtablesize() problem,
perhaps there should be a 'GETDTABLESIZEMISSING' clause in the
makefiles.
* Reve has been ported to Sun's SVR4 development platform. The X11,
XView and tty versions all work. A list of the Makefile definitions
that need to be uncommented is included in the example section of
the README file.
* Compiled reve with an ANSI C compiler, fixing up any discrepancies.
* Added in ANSI C function prototypes for each reve routine.
* Added a paragraph to the README file, to describe the anonymous ftp
sites now available for reve.
* From Martin Boyer <gamin@ireq-robot.hydro.qc.ca>
- The README file has been modified to give the patchlevel as part
of the version number, and the date adjusted accordingly.
- Yves Gallot no longer works at CERN. The README file and the manual
pages have been adjusted to reflect that he is currently has no
email address.
- Fixed up the Makefile.dist to correctly shar up the fifteenth part
of the reve distribution.
v1.2 - patchlevel 7. 25th March 1991.
* From Andreas Zins <zins@forwiss.uni-erlangen.de>
From Michael Glad <glad@daimi.aau.dk>
From Brett Carver <brett@hpsrbkc.hp.com>
From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
The routine raise() is already defined under HP_UX and Ultrix.
All occurances of raise() in the reve program have been replaced
with raise_reve().
* The raise_reve() routine hadn't been written for the SunView version;
it was just a stub. Minor nit really, as there is currently no way of
calling it.
* From Brett Carver <brett@hpsrbkc.hp.com>
Addition Makefile sample configuration for the README file.
v1.2 - patchlevel 6. 20th March 1991.
* From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
The "moves?" and "suggest" symbols weren't being displayed or
toggled correctly on monochrome screens.
* From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
"make install" compiles reve_proc, which has a reference to the
BSD-only index routine. I did a dirty fix in the Imakefile to get
round this:
DEFINES = $(CDEFS) -DX11 -Dindex=strchr
I suspect that some #ifdef check for System V should be in there
somewhere.
* From Michael Glad <glad@daimi.aau.dk>
HP-UX misses the 'index' function. I believe there ought to be a
'NOINDEX' clause in the Imakefile as in the ordinary Makefile.dist.
* From Robert Cohen <robert@anucsd.anu.oz.au>
It would be nice to be able to close down (iconise) the reve window
while it was thinking and do something else. Then know when it was
done so you could make your move. So an option to choose between it
doing nothing on move or suggestion completion, beeping on completion,
or autoraising on completion would be nice. It should probably also
do something to the icon although that isnt sufficient by itself as
not every one uses the icons.
[I've added three new X resources:
reve.iconiseForOpponentMove: false
reve.bellAfterOpponentMove: false
reve.raiseAfterOpponentMove: false
combinations of these three should give everything that's desired.
Manual pages and Reve.ad updated - Rich.]
* From Michael Glad <glad@daimi.aau.dk>
Reve_proc has a sad tendency to coredump. This makes 'reve' enter
some infinite loop of read system calls making my kernel eat 90% of
the CPU time. Some check might be missing somewhere.
As far as I can figure out, the crash is provoked when the alarm
signal in rev_ip.c goes off. This causes a longjmp around line #107.
Unfortunately, the routine calling setjmp (play_reve) has not taken
any provision to protect its local variables from being clobbered
upon return from setjmp. Code relying upon set/long jmp to preserve
any local variable must be considered nonportable. Using adb I've
traced the crashed to a index violation in line 276:
cpk[k] = cpk2[k] ;
* From Brett K. Carver <brett@hpsrbkc.hp.com>
Perhaps some recommended settings for various computers, or a bit
more help in determining how to set the makefile stuff would help.
[So far I only have settings for a Sun 4/65 and an HP Series 9000
model 3[67]0 - Rich.]
* From Michael Glad <glad@daimi.aau.dk>
Changes to the Makefile.dist and Imakefile files to specify where
the reve_proc program can be found. There is also a new command line
option, -r <reve_pathname>, to allow this to be overridden at run
time. The manual pages have been updated to reflect these changes.
v1.2 - patchlevel 5. 14th March 1991.
* From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
In procs.c is in do_suggest the parameter 'player' is declared in
the routines arguments and internal to the routine.
* From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
Choose 'Computer plays black' in the property sheet.
Computer plays d-3. Put a white stone on c-3.
Computer puts a black stone on c-4 AND THEN ON f-5 (!!!).
* From Brett Carver <brett@hpsrbkc.hp.com>
I'm playing a game, and it's saying the computer is forced to pass
when I can clearly see moves.
v1.2 - patchlevel 4. 13th March 1991.
* From Norbert Jung < jung@dia.informatik.uni-stuttgart.de>
- a typo in items.c, which corrects board labling.
- a #include needs to be added in trans/trans.c for <ctype.h>
* In order to try to fix up the display of stones on a board that has
been resized, the second XSetFunction() call in make_pieces() in
x11.c has been changed to use GXset.
* Changed the symbols displayed for legal moves and suggest. This is
to produce a consistent interface for mono and color. Two new image
files have been created:
images/move8.icon
images/suggest8.icon
I'm not very happy with the images, but they can easily be improved
without affecting the rest of the program.
The Makefile.dist, images.h, MANIFEST and FILES files have been
updated, plus the routines that display legal moves and suggestions.
* From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
There is a slight inconsistency in the display of the legal moves and
the suggested move:
A click on "Moves ?" results in Addition of "+"'s to show legal
moves followed by...
A click on "Suggest" results in Addition of a "X" on top of one
of the "+"'s to show suggested move
followed by...
A click on "Moves ?" results in ALL "+"'s AND "X"'s removed from
the display.
I feel that:
1) The second click of the "Moves ?" button should leave the "X"
intact and, failing that,
2) The "Suggest" button should toggle the "X" on and off, since a
second click on that just recomputes the same suggested move
anyway.
* From Soren Hein <shein@ferdowsi.berkeley.edu>
"moves?" could show, within each circle, how many stones that move
would conquer.
v1.2 - patchlevel 3. 19th February 1991.
* Added missing X resource entries to the Reve.ad file, and the manual
pages.
* From Brett K. Carver <brett@hpsrbkc.hp.com>
You allow the stone colors to be changed (I like red and blue), but
the control panel refers to players 'white' and 'black'. It would be
nice if they used the color names specified so the players would
match the stones.
[Rather then use the color name, which could be something like
firebrick red, I've added in a couple more X resources:
reve.whiteStoneName:
reve.blackStoneName:
to allow you to specify alternate strings than Black or White].
* The help text was being drawn in the normal font, not the help font.
* From Thomas K. Bischoff <bisc@zellweger.ch>
When clicking on a illegal square, display the legal squares like the
Moves? button does. So you don't have to move the mouse to the control
panel. You could even discard the moves? button.
Idea from the "Smart Game Board" of Anders Kierulf.
[I have put this in as a new toggle option on the property sheet.
There is also, yet another X resource:
reve.showLegalMoves:
which can be used to initialise this option].
* From Thomas K. Bischoff <bisc@zellweger.ch>
Various modification to the trans program and it's integration into
the X11, SunView and XView versions:
- had to make some patches to makefiles to make them work.
- changed trans to act as filter which reads from standard input
and writes to standard output as default.
- created a print button which calls trans to print the game.
- added another X resource:
reve.printCommand:
which allows you to specify an alternate print command.
- the manual pages have been updated.
v1.2 - patchlevel 2. 18th February 1991.
* The make_pieces() routines in x11.c and xview.c have been modified
to clear the black and white piece image areas in a slightly
different way. Hopefully this fixes up the problems seen on HP-UX
systems.
* From Valerie Haecky (vmh@Eng.Sun.COM)
Added in the ability to print a transcript of a reve game to a
PostScript printer. This is currently a standalone utility in the
trans directory, but will be directly interfaced to a reve button
in the graphical versions of reve, in a future version.
* From Robert Cohen <robert@anucsd.anu.edu.au>
Small patch to shut up the optimiser on HP-UX systems, which
complains about variables being un-initialised.
v1.2 - patchlevel 1. 11th February 1991.
* From Brett K. Carver <brett@hpnmd.hp.com>
Needed #include <signal.h> in x11.c
* From Brett K. Carver <brett@hpnmd.hp.com>
The XSetWMProtocols call is not available with X11 R3. These have
now been surronded with #ifndef X11R3 definitions.
* From Mike Wexler <mikew@neptune.fx.com>
The distributed Imakefile didn't work.
* From Thomas K. Bischoff <bisc@zellweger.ch>
The version number in the README file is wrong.
* From Thomas K. Bischoff <bisc@zellweger.ch>
The Load button with the XView version saves a game. This has now
been changed to use XV_KEY_DATA.
* From Martin Boyer <gamin@ireq-robot.hydro.qc.ca>
From Thomas K. Bischoff <bisc@zellweger.ch
After a game has been loaded, there needs to be a check to see if
the next person can move. If they can't, and the opponent is the
computer, then the computer must make a "move".
* From Martin Boyer <gamin@ireq-robot.hydro.qc.ca>
From Thomas K. Bischoff <bisc@zellweger.ch>
From Valerie Haecky <vmh@Eng.Sun.COM>
The program can hang if one player is forced to pass, and the
opponent is the computer.
* From Thomas K. Bischoff <bisc@zellweger.ch>
From Valerie Haecky <vmh@Eng.Sun.COM>
With the XView version, the game board icon wasn't being set
correctly.
* Under Open Windows, the InputHint needed to be given to the olwm
window for the control panel, to allow the keyboard to be used to
enter a load/save file name.
* With the XView version, if the computer is making a move (or a
suggestion), and there is an event other than a repaint event, then
the bell is no longer sounded, it just displays the message "It's
not your turn". This needs to be improved. There will be certain
actions you can do while the computer is making a move.
* Added sections into the event handling routines for the tty, x11
and sunview drivers, to better handle events when the computer is
making a move.
* Setting the difficulty with the tty version caused a core dump
because some of the pseudo items dimensions had not been setup.
* Doing a ^L to redraw the screen with the tty version didn't work.
* The -debug and -log options weren't working. These flags are now
passed across to the reve_proc program. Debug messages are now
written out to a file called reve.debug.
* Selection "computer plays neither" with the X11 version caused the
program to core dump.
* Setting a certain cursor, will not set it for all visible windows.
* Redo was incorrect for situations where one player had to pass.
* From Thomas K. Bischoff <bisc@zellweger.ch>
With the X11 version, only the board window could be iconified. The
control pane stayed open.
* From Michael Glad <glad@daimi.aau.dk>
Removed the '#ifndef X11' code around the NOINDEX definition in
reve.h.
* From Michael Glad <glad@daimi.aau.dk>
Problems with getdtablesize() under HP-UX.
I've using the stdio-defined constant _NFILE instead of the call
in makemove.c.
* From Michael Glad <glad@daimi.aau.dk>
Reve should check the return value of XOpenDisplay() in x11.c. It
core dumps if access to the server is denied.
v1.2 - patchlevel 0. 5th February 1991.
* From Martin Boyer <gamin%ireq-robot.UUCP@Larry.McRCIM.McGill.EDU>
I found a few bugs with the SunView version of reve, at patchlevel 7.
They all have to do with the color handling.
1. The color array used to set the colormap segment should not be an
array of integers, but rather an array of unsigned characters
(main.c and sunview.c).
2. Sunview doesn't allow the first and last entries of the colormap to
be equal (i.e. foreground and background colors must be different)
(color.h).
3. The colormap segment should be a power of two (by extending it from
10 to 16, this also solves 2. above) (color.h).
4. The props and help frames should have the same colormap as the main
frame, in order to display text correctly (sunview.c).
5. The help frame should be created before the colors are loaded, in
order to apply 4. above (main.c).
* From robert@anucsd.anu.edu.au (Robert Cohen)
While analysing the tree search code for reve (in rev_ip.c) and
reading the literature on the subject, preparatory to parallelising
it I had some ideas for improving the serial search. I havent changed
the board evaluation function or anything like that, just improved the
tree pruning so it visits less useless positions. One of the
techniques came from the article "parallel search of strongly ordered
game trees" in December 82 ACM computing surveys. This gives a good
overview of game tree search techniques both serial and parallel.
Anyway I have prepared a number of patches incorporparating these that
speed up the search reasonably considerably. Something like 20% less
nodes visited to reach a given depth. Practically speaking at a given
difficulty level it searches usually 1 and sometimes 2 ply deeper.
* Set the stdout debug printing in the new rev_ip.c, to be displayed
only if you use the -D command line option. This needs to be improved.
* Further work on the X11 graphics version:
- Separated the control panel from the game board.
- The game board is now totally resizable. There is a minimum size
of 200x200.
- Condensed Creve.icon to half the size, and adjusted the routine
that turns this into the color reve icon, so that it can read the
condensed format.
* Adjusted the SunView driver so that the control panel is separate
from the game board.
* Adjusted the XView version. The control panel is now separate from
the games board, and the games board is resizable.
* Adjusted the tty version to work with the new code.
* All four versions now run the reve computer strategy as a separate
process that gets initially forked off. This now requires the
select system call.
* Removed the undocumented -D (debug) command line option, and replaced
it with:
-debug - for printing debug messages to stdout.
-xdebug - for debugging the X11 graphics driver (synchronous mode).
* Created a new file called Reve.ad which gives all the X resource
application defaults for reve.
* Added new X resources:
- reve.boardSize: which takes an integer value for the initial size
of the reve game board.
- reve.boardFont: which takes the name of a font to use to display
the numbers and letters on the game board.
* From Robert Cohen <robert@anucsd.anu.edu.au>
The save game button does not work properly in the X11 version. Both
the load and save buttons seem to end up calling the routine
load_game.
* From Robert Cohen <robert@anucsd.anu.edu.au>
One problem I noticed for example in the present version is that
there was no one terribly clear exit point.
[The routine destroy_frame() should always be called during exiting.
This routine is in the individual graphics files - Rich.]
* From Norbert Jung <jung@dia.informatik.uni-stuttgart.de>
If I use xreve (compiled on a SUN4) together with a DECstation 2100 as
X11-display, the bytes of the images get flipped vertically so that a
white piece looks like this:
...........oooo..........
.......ooo......ooo......
...o......o....o......o..
....o................o...
.....o..............o....
.....o..............o....
.....o..............o....
.....o..............o....
....o................o...
...o......o....o......o..
.......ooo......ooo......
...........oooo..........